﻿/// <reference path="../References/jquery-1.4.1-vsdoc.js" />
/// <reference path="blueliger.core.js" />

blueliger.SelectRadioViewPart = function (actor) {
    return this.Initialize(actor);
};
blueliger.SelectRadioViewPart.prototype = {
    Actor: new blueliger.ISelectActor()
    , NowSelectedEvent: false
    , Initialize: function (actor) {
        this.Actor = actor;
        return this;
    }
    , Show: function (data) {
        /// <summary>データを指定して、データの内容を表示します。このメソッドはフレームワークのインフラストラクチャをサポートします。独自のコードから実行しないでください。</summary>
        /// <param name="data">表示するデータを指定してください。</param>

        var name = this.Actor.Name;
        var id = "#" + this.Actor.Name;
        $(id + " label").remove();

        for (var i in data) {
            $(id).append('<label><input type="radio" name="' + name + '" value="' + i + '"  />' + data[i] + '</label>');
        }

        var me = this;
        $('input[name="' + name + '"]:radio').change(function () {
            if (me.NowSelectedEvent == false) {
                me.NowSelectedEvent = true;
                var index = $('input[name="' + name + '"]:checked').val();
                if (me.Actor.Select != undefined) me.Actor.Select(index);
                me.NowSelectedEvent = false;
            } // end if
        });
        $(id + ' label').click(function () {
            if (me.NowSelectedEvent == false) {
                me.NowSelectedEvent = true;
                var index = $('input:radio[name="' + name + '"]:checked').val();
                if (me.Actor.Select != undefined) me.Actor.Select(index);
                me.NowSelectedEvent = false;
            } // end if
        });
    }
    , Hide: function () {
        /// <summary>データの内容を非表示にします。このメソッドはフレームワークのインフラストラクチャをサポートします。独自のコードから実行しないでください。</summary>
        var id = "#" + this.Actor.Name;
        $(id + " label").remove();
    }
    , Select: function (index) {
        /// <summary>データを選択します。このメソッドはフレームワークのインフラストラクチャをサポートします。独自のコードから実行しないでください。</summary>
        /// <param name="index">選択する項目の 0 から始まるインデックス番号を指定してください。</param>

        if (this.NowSelectedEvent == false) {
            var name = this.Actor.Name;
            var id = this.Actor.Name;
            $('input[name="' + name + '"]:radio').val(['' + index + '']);
        } // end if
    }
};
// End Class

    
